/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 30318
 * Date: 2023-05-13
 * Time: 8:28
 */
public class Test {

    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = a + ((b - a) >> 1);
        System.out.println(c);
    }

    public static void main8(String[] args) {
        int a = 10;
        int b = 20;
        //int c = a > b ? 1: 2.0;//报错
        double c = a > b ? 1: 2.0;
        //表达式2和表达式3的结果要是同类型的
    }

    public static void main7(String[] args) {
        //System.out.println(10 > 20 & 10 / 0 == 0);//程序抛出异常
        //System.out.println(10 < 20 | 10 > 0);//不支持短路求值
        System.out.println(-1>>1);//-1
        System.out.println(-1>>>1);//2147483647 无符号右移（自动补0）
        //不存在无符号左移（<<<）

    }

    public static void main6(String[] args) {
        int a = 1;
        int b = 2;

        //System.out.println(!a);//报错 - !后面一定要加表达式
        System.out.println(!(a<5));//false

    }

    public static void main5(String[] args) {
        int a = 1;
        int b = 2;
        //System.out.println(a < 5 || b > 6);//true
        //System.out.println(a > 5 || a/0 != 0);//报错
        //System.out.println(a < 5 || a/0 != 0);//true

        //只要有一个为真，那么整体就是真的
        //假设第一个为真，就不会执行第二个表达式

        //布尔表达式1 || 布尔表达式2      结果
        //    真           真           真
        //    真           假           真
        //    假           真           真
        //    假           假           假
    }

    public static void main4(String[] args) {
        int a = 1;
        int b = 2;
        //System.out.println(a && b);//报错
        //System.out.println(a<5 && b<6);
        //两个表达式必须都是布尔表达式
        //如果第一个表达式为假，那么不会执行第二个表达式（短路与）
        System.out.println(a > 5 && a/0 != 0);//false
        //程序会正常运行 - 因为布尔表达式1为假
        System.out.println(a < 5 && a/0 != 0);//报错
        //布尔表达式1为真，布尔表达式2报错

        //布尔表达式1 && 布尔表达式2      结果
        //    真           真           真
        //    真           假           假
        //    假           真           假
        //    假           假           假
    }

    public static void main3(String[] args) {
        int a = 11;
        int b = 12;
        System.out.println(a > b);//false
        System.out.println(a < b);//true
        System.out.println(a >= b);//false
        System.out.println(a == b);//false
        System.out.println();
        /*if(5 < a < 10){

        }*/
        a = ++a;
        System.out.println(a);
    }

    public static void main2(String[] args) {
        int a = 10;
        //int b = a++;//b = a; a = a+1;
        //int b = ++a;//a = a+1; b = a;
        //System.out.println(b);
        a = a++;
        System.out.println(a);
    }

    public static void main1(String[] args) {

        int a  = 10;
        //a = a+1;
        /*a+=1;
        System.out.println(a);*/
        double d = 12.5;
        a = (int)(a+d);//与下一行等价
        //a += d;//可以自动帮我们进行类型转换
        System.out.println(a);


        /*System.out.println(10/0);//报错 - 异常*/

        /*System.out.println(12.5%10.5);//2.0
        System.out.println(11%10.5);//0.5*/

        /*System.out.println(10%3);//1
        System.out.println(-10%3);//-1
        System.out.println(10%-3);//1
        System.out.println(-10%-3);//-1*/

        /*System.out.println(5/2);//2
        System.out.println(5.0/2);//2.5
        System.out.println(5/2.0);//2.5
        System.out.println((float)5/2);//2.5
        System.out.println(5/(float)2);//2.5
        System.out.println((float)(5/2));//2.0*/

    }
}
